<?php

if (!defined('BASEPATH'))
    exit('No direct script access allowed');

class Proceso extends CI_Controller {

    function __construct() {
        parent::__construct();
        $this->load->model('ventas/catalogo_model');
        $this->load->model('ventas/venta_model');
     
        $this->form_data = new stdClass();
        if (!empty($this->session->userdata['nombre'])) {
            $this->form_data->nom = $this->session->userdata['nombre'];
            $this->form_data->ape = $this->session->userdata['apellido'];
            $this->form_data->suc = $this->session->userdata['sucursal'];
            $this->load->helper('navigation');
        } else {
            redirect("acceso");
        }
    }
    
    public function verCliente(){
        $params = array($_POST["id"]);
        $cliente = $this->catalogo_model->verCliente($params)->row();
        
        echo $cliente->nom."|".$cliente->num;
    }
    
  //////////////////////////////////////--02

        public function verventa() {
        
        $params = array($_POST["id"]);
        $data['registros'] = $this->catalogo_model->verventa($params);
        echo json_encode($data);
    }
    //////////////////////////////////// --- 01
  
  
  
      //////////////////////////////////////// --- 01
        public function filtradodeVenta() {
        $sucursal = $this->session->userdata['idSuc'];
        $params = array($sucursal, $_GET["q"]);
        $data['registros'] = $this->catalogo_model->filtrarVenta($params);
        echo json_encode($data);
    }
    //////////////////////////////////// --- 01
    
    
 public function detallepedidosgetall() {

       $params = array($_POST["id"]);       
        $data['registros'] = $this->venta_model->detallepedidosgetall($params);
        echo json_encode($data);
    }
    
     public function anularpedido($id) {
        $sucursal = $this->session->userdata['idSuc'];
        $params2 = array($sucursal);        
        $params = array(2,$id,$this->session->userdata['nombre']);
        $this->venta_model->anularpedido($params);
        $data['pedidos'] = $this->venta_model->pedidoshoygetall($params2);
        $this->pagina('pedidos_view', $data);
    }
    
    
     public function pedidoshoygetall() {
        $sucursal = $this->session->userdata['idSuc'];
        $params = array($sucursal);
        $data['pedidos'] = $this->venta_model->pedidoshoygetall($params);
        $this->pagina('pedidos_view', $data);
    }
    
     public function fgenerarventa() {
       
        $this->pagina('frmgenerarc_view', array());
    }
  public function IComprobantVenta() {
        $sucursal = $this->session->userdata['idSuc'];
       if($_POST["descVenta"]!=""){
        $params = array($sucursal,$_POST["descVenta"],$_POST["cmbTipPago"], $_POST["cmbTipDocumento"], $_POST["txtSerieDoc"], $_POST["txtNumDoc"], $_POST["lblValorVenta"], $_POST["txtNroDGiro"], $_POST["txtPagoCuenta"]);
       $this->venta_model->I_Venta($params);}
        return "se inserto";
       
  
    }

    //inicio del registrar
     public function IRegistrarPedido() {
         
        $sucursal = $this->session->userdata['idSuc'];
        $this->load->model('ventas/tablaMaestra_model');
        $data['sucursal'] = $this->tablaMaestra_model->cmbsucursal($sucursal);
        $params = array($_POST["dniRucCli"],"",  $this->cart->total(),$sucursal,$this->session->userdata['nombre']);
        $data['codigo'] = $this->venta_model->pedidoinsert($params);
        $carroNuevo = $this->cart->contents();
         foreach ($carroNuevo as $item) {
             $idro = $item['rowid'];
            $codigos = explode(".", $item['id']);
            $nombrep = "";
              foreach ($this->cart->product_options($idro) as $opcion => $value) {
                         $nombrep=$value ;       
              }
            $paramsdetalle = array($sucursal,$nombrep,$item['qty'],$item['price'],$item['qty'] * $item['price'] ,$codigos[0],$codigos[1],$codigos[2]);
            $this->venta_model->detallepedidoinsert($paramsdetalle);
        }
          $this->cart->destroy();
            $this->pagina('frmVenta_view', $data);   
    }
    
    
    // inicio listado combos formulario venta
    public function FrmVenta() {
        $sucursal = $this->session->userdata['idSuc'];
        $this->load->model('ventas/tablaMaestra_model');
        $data['codigo']=0;
        $data['sucursal'] = $this->tablaMaestra_model->cmbsucursal($sucursal);
        $this->pagina('frmVenta_view', $data);
    }

    // fin listado combos formulario venta
    
    
    
    public function insertarCliente() {
        $this->load->model('ventas/tablaMaestra_model');
        $params = array($_POST["tipo"], $_POST["cli"], $_POST["nro"], $_POST["dir"], $_POST["tel"], $_POST["em"]);
        $data = $this->tablaMaestra_model->I_Cliente($params);
        echo $data;
    }

    public function filtradodeProd() {
        $sucursal = $this->session->userdata['idSuc'];
        $params = array($_GET["q"], $sucursal, 0, 0, $_GET["cod"]);
        $data['registros'] = $this->catalogo_model->filtrarProductos($params);
        echo json_encode($data);
    }

    public function cargarProdForm() {
        $sucursal = $this->session->userdata['idSuc'];
        $partes = explode("|", $_POST["codProd"]);
        $params = array(0, $sucursal, $partes[0], $partes[2], $partes[1]);

        $data['registros'] = $this->catalogo_model->filtrarProductos($params);
        echo json_encode($data);
    }

    public function ComprobantePago() {
        $sucursal = $this->session->userdata['idSuc'];
        $this->load->model('ventas/tablaMaestra_model');
        $data['tipodocumento'] = $this->tablaMaestra_model->cmbventaTablaMaestra(1);
        $data['sucursal'] = $this->tablaMaestra_model->cmbsucursal($sucursal);
        $this->pagina('formComprobante_view', $data);
    }

    function frmeliminarProductos() {
        //para eliminar un producto en especifico lo que hacemos es conseguir su rowid
        //y actualizarlo poniendo qty que es la cantidad a 0
        $producto = array(
            'rowid' => $_POST["rowid"],
            'qty' => 0
        );
        //después simplemente utilizamos la función update de la librería cart
        //para actualizar el carrito pasando el array a actualizar
        $this->cart->update($producto);

        $carroNuevo = $this->cart->contents();
        $contador = 1;
        $tabla = "<table class='table table-striped table-bordered table-hover table-full-width' id='tabla'>" .
                "<thead>" . "<tr>" . "<th style='width: 5%'>ID</th>" . " <th style='width: 45%'>descripción</th>" .
                "<th style='width: 15%'>precio</th>" . "<th style='width: 10%'>cantidad</th>" .
                "<th style='width: 15%'>subtotal</th>" . "<th style='width: 10%'>Eliminar</th>" .
                "</tr>" . "</thead>" . "<tbody>";
        foreach ($carroNuevo as $item) {
            $idro = $item['rowid'];
            $tabla.="<tr>" .
                   "<td>$contador</td>";
                     foreach ($this->cart->product_options($idro) as $opcion => $value) {
                 $tabla.= "<td>". $value . "</td>";                   
                }
                   $tabla.= "<td>" . $item['price'] . "</td>" .
                    "<td>" . $item['qty'] . "</td>" .
                    "<td>" . $item['qty'] * $item['price'] . "</td>" .
                    '<td><a  class="btn btn-danger tooltips panel-config" onclick=eliminarProducto("' . $idro . '")><i class="icon-remove"></i></a></td></tr>';
            $contador++;
        }
        $valorTotal = $this->cart->total();
        $tabla.="</tbody></table><input type='hidden' id='txtValTotVent' value='$valorTotal'  />";
        echo $tabla;
    }

    // inicio listado Comprobante de venta
    public function ListarComprobante() {
        $sucursal = $this->session->userdata['idSuc'];
        if (!empty($_POST["tipoC"])) {
            $params = array($_POST["tipoC"], $sucursal);
            $data['comprobante'] = $this->venta_model->listarComprobanteFor($params);
        } else {
            $data = array();
        }
        $this->pagina('Comprobante_view', $data);
    }

    // fin listado comprobante de venta
    
    
    
    public function listPreciosProdxSuc() {

        $sucursal = $this->session->userdata['idSuc'];
        $data['registros'] = $this->catalogo_model->listar_prod(0, $sucursal);
        echo json_encode($data);
    }

    public function listCodVenta() {

        $sucursal = $this->session->userdata['idSuc'];
        $params = array($_POST["tipo"], $sucursal);
        $max = $this->venta_model->ultimoCodigoSucursal($params)->row();
        $num = (int) $max->ultCod;
        $codigo = str_pad($num + 1, 7, 0, STR_PAD_LEFT);
        echo $codigo;
    }

    public function filtrarClientes() {
        $params = array($_GET["tipo"], $_GET["q"]);
        $data['registros'] = $this->catalogo_model->filtrarClientes($params);
        echo json_encode($data);
    }

    public function AgregarCarrito() {
        $id = $_POST["id"];
        $sucursal = $this->session->userdata['idSuc'];
        $alm = $_POST["alm"];
        $col = $_POST["col"];
        $codigo = $id . '.' . $col . '.' . $alm;
        $producto = $this->catalogo_model->listar_prod($id, $sucursal, $col, $alm);
        $cantidad = $_POST["cant"];

        $carrito = $this->cart->contents();

        foreach ($carrito as $item) {
            
                
                 foreach ($this->cart->product_options($item['rowid']) as $opcion => $value) {
                 if ($value == $producto->producto ){
                   $cantidad = $cantidad + $item['qty'];  
                     
                 }       
                
                
                
            }
        }

        $insert = array(
            'id' => $codigo,
            'qty' => $cantidad,
            'price' => $producto->precio,
            'name' =>"ss",
            'options' => array('Size' => $producto->producto)
        );
        $this->cart->insert($insert);
        $this->session->set_flashdata('agregado', 'El producto fue agregado correctamente');
        $carroNuevo = $this->cart->contents();
        $contador = 1;
        $tabla = "<table class='table table-striped table-bordered table-hover table-full-width' id='tabla'>" .
                "<thead>" . "<tr>" . "<th style='width: 5%'>ID</th>" . " <th style='width: 45%'>descripción</th>" .
                "<th style='width: 15%'>precio</th>" . "<th style='width: 10%'>cantidad</th>" .
                "<th style='width: 15%'>subtotal</th>" . "<th style='width: 10%'>Eliminar</th>" .
                "</tr>" . "</thead>" . "<tbody>";
        foreach ($carroNuevo as $item) {
            $idro = $item['rowid'];
            $tabla.="<tr>" .
                    "<td>$contador</td>";
                     foreach ($this->cart->product_options($idro) as $opcion => $value) {
                 $tabla.= "<td>". $value . "</td>";                   
                }
                   $tabla.= "<td>" . $item['price'] . "</td>" .
                    "<td>" . $item['qty'] . "</td>" .
                    "<td>" . $item['qty'] * $item['price'] . "</td>" .
                    "<td><a class='btn btn-danger tooltips panel-config' onclick=eliminarProducto('" . $idro . "')  ><i class='icon-remove'></i></a></td></tr>";
                  
                              
            
            $contador++;
        }
        $valorTotal = $this->cart->total();
        $tabla.="</tbody></table><input type='hidden' id='txtValTotVent' value='$valorTotal'  />";
        echo $tabla;
    }

    public function reporte($nombre, $vista, $data) {
        $this->createFolder(); //establecemos la carpeta en la que queremos guardar los pdfs,
        $this->html2pdf->folder('./reportes/pdfs/'); //importante el slash del final o no funcionará correctamente
        $this->html2pdf->filename("$nombre.pdf"); //establecemos el nombre del archivo
        $this->html2pdf->paper('a4', 'portrait');
        $this->html2pdf->html(utf8_decode($this->load->view($vista, $data, true)));

        if ($this->html2pdf->create('save')) {
            $this->show($nombre);
        }
    }

    
    
    
    private function pagina($vista, $data) {
        $this->load->model("panel_model");
        $menu["logistica"] = "active open";
        $user = $this->session->userdata['codigo'];
        $params = array($user, 1);
        $menu["menu"] = $this->panel_model->menu($params);
        $this->load->view('estructura/head');
        $this->load->view('estructura/madmin', $menu);
        $this->load->view('intranet/ventas/' . $vista, $data);
        $this->load->view('estructura/footer');
    }


}

?>
